Data gathering using a mobile computing device

ABSTRACT

Systems and methods for field data gathering and which provide flexible configuration options for a central office. The system, run from, mobile computing devices, provides a free-flowing data gathering experience while only requiring what the central office needs from the field. The central office can configure the system to accept different types of data by way of different data input means available to the mobile computing device. Only the data needed by the central office need be collected by the mobile device operator. The data format is defined by the central office and is uploaded to each of the relevant mobile computing devices for use by the operators. Once each data set has been collected by an operator, the data package with the data set is scheduled for transmission to the central office once a connection with the central office can be made.

TECHNICAL FIELD

The present invention relates to data structures. More particularly, thepresent invention relates to data structures and systems using such datastructures for use in data gathering using a mobile computing device.

BACKGROUND OF THE INVENTION

Data gathering in the field is something that has been occurring forcenturies. Scientists, technologists and other research personnel gatherenvironmental data, scientific data, and other data points for theirresearch. Workers gather data that is used by their head offices togenerate orders, gather billing data, and other business relatedactivities. While field data gathering is widespread, in quite a fewcases, it can be quite tedious and, depending on the circumstances,confusing.

As an example, sales people who take down orders while out in the fieldmay need to take multiple points of data, some of which may be requiredfor the head office to process the order.

Taking down the relevant data on paper may require repeat visits to thecustomer, especially if all of the required information has not beenobtained. Paper based order sheets, with specific areas requiringinformation, may be used but such measures are not environmentallyfriendly. As well, there is still no guarantee that the person in thefield will gather the correct data even if using such order sheets.

Similar to the above, researchers out in the field usually need togather multiple data points. As an example, a researcher may need togather the ambient air temperature, the moisture content of the air,along with other data points. However, if the researcher is not fullybriefed on a project, he or she may not gather data points that might,in the end, prove to be the most important data.

The boom in smart mobile devices may alleviate the pain of datagathering by providing the data gatherers in the field with applicationsthat require the data gatherers to obtain specific data points. However,if the data requirements change, these applications generally need to berewritten and retooled before they can be redeployed in the field. Thetime lag caused by the reprogramming and/or retooling may mean lostproductivity or, at the very least, less than optimal productivity.

Based on the above, there is a need for systems and methods thatalleviate, if not overcome the shortcomings of the prior art.

SUMMARY OF INVENTION

The present invention provides systems and methods for field datagathering and which provide flexible configuration options for a centraloffice. The system, run from, mobile computing devices, provides afree-flowing data gathering experience while only requiring what thecentral office needs from the field. The central office can configurethe system to accept different types of data by way of different datainput means available to the mobile computing device. Only the dataneeded by the central office need be collected by the mobile deviceoperator. The data collected is packaged into a data package having adata format that is tree structured. The data format is defined by thecentral office and is uploaded to each of the relevant mobile computingdevices for use by the operators. Once each data set has been collectedby an operator, the data package with the data set is scheduled fortransmission to the central office once a connection with the centraloffice can be made.

In a first aspect, the present invention provides a system for gatheringdata at a location remote from a central office, the system comprising:

-   -   a data format receiver for receiving a data format from said        central office;    -   a data aggregator for aggregating data gathered by an operator        into a data package having a format derived from said data        format received from said central office, said data format        comprising a plurality of data nodes having an internal tree        structure, said tree structure comprising:        -   a root node, said root node determining a type for said data            package;        -   a plurality of data nodes, at least one data node being            nested from said root node;    -   a plurality of data input modules for providing data to be        entered into said data nodes, at least one of said data input        modules entering data into a data node upon activation by said        operator;    -   a data transmitter for transmitting said data package to said        central office;        wherein said system operates as part of a mobile computing        device.

In a second aspect, the present invention provides a method forgathering data from a location remote from a central office, the methodcomprising:

-   -   a) receiving a data format for said data from said central        office, said data format comprising a plurality of data nodes        having an internal tree structure, said tree structure        comprising:        -   a root node, said root node determining a type for said data            package;        -   a plurality data nodes, at least one data node being nested            from said root node;    -   b) creating one instance of said root node based on said data        format;    -   c) populating at least one of said plurality of data nodes with        data received from at least one data input module;    -   d) aggregating said data in said data nodes into a data package;    -   e) transmitting said data package to said central office.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments of the present invention will now be described byreference to the following figures, in which identical referencenumerals in different figures indicate identical elements and in which:

FIG. 1 is a block diagram of a communications system which may use theinvention;

FIG. 2 is a block diagram of a data gathering system according to oneaspect of the invention;

FIG. 3 is a block diagram of an internal tree structure of a data formataccording to one aspect of the invention;

FIG. 3A is a block diagram of a sample internal tree structure of thedata format of FIG. 3;

FIG. 4A is an illustration of a software keyboard on a mobile computingdevice;

FIG. 4B is an illustration of a scrolling menu on a mobile computingdevice;

FIG. 4C is an illustration of a spinner menu on a mobile computingdevice; and

FIG. 5 is a flowchart detailing the steps in a method according to oneembodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

Referring to FIG. 1, a block diagram of a communications system 10 whichmay use the invention is illustrated. A central office 20 is incommunication with multiple mobile computing devices 30A, 30B, 30C, 30D.Each mobile computing device is used by an operator who gathers datafrom areas remote from the central office. The data gathered is thenuploaded to the central office when the operator is in communicationwith the central office. The communication links between the operatorand the central office may be wireless, wired, or by way of a largenetwork such as the Internet.

The mobile computing device may be a smartphone (e.g. an iPhone™, anAndroid handset), a tablet computer (e.g. an iPad™, a TouchPad™, or aPlaybook™), a notebook, or any other computing device which may be takeninto a non-office or non-laboratory environment and which is capable ofdata entry, data processing, and data transmissions.

The data gathered by the operator may be business, science, research, ortechnology-related. As an example, the operator may be a salespersongathering data relating to an order being placed, with the dataincluding the customer name, address, billing information, the goods orservices being ordered, delivery option selected, etc. As anotherexample, the operator may be a researcher gathering data relating toenvironmental conditions at a specific location. For this researcherexample, the data may include not just the environmental conditions(e.g. temperature, humidity, rainfall, etc.) but also the location ofthe area (e.g. GPS coordinates, area name, address, etc.).

The central office, when in communication with a mobile computingdevice, can upload to the mobile computing device the data format itrequires. This includes the data fields needed, which data points arerequired, which data points are optional, the maximum and minimum sizesof each data field, and how the data is to be entered into the variousfields.

The data gathering system 40 according to one aspect of the invention isan application operating on a mobile computing device. A block diagramof such a system is illustrated in FIG. 2.

The system 40 has a data reception module 50, a data transmission module60, and a data aggregator module 70. The system 40 also has data inputmodules 80A, 80B, 80C, 80D. The data reception module 50 is used toreceive the data format from the central office. The data transmissionmodule is used to transmit the data gathered to the central office whena communications link to the central office is available. The dataaggregator module 70 aggregates the data gathered into a data packagesuitable for transmission to the central office. The data input moduleseach allow for the input (whether manual or automatic) of data into thedata uploaded by the central office.

The data format uploaded from the central office and used by the system40 has an internal tree structure and is therefore composed of datanodes with one root node (see FIG. 3). Within the tree structure, theroot node 90 is the only node which does not have a parent node (i.e. itis not a child node). As can be seen from FIG. 3, the root node 90 isdirectly connected to a number of internal nodes 100A, 100B, 100C . . .100 n and end data nodes 110A, 110B, 110C, . . . , 110 n are connectedto these internal nodes. It should be noted that the order and structureof the internal data nodes are completely configurable and adjustable bythe central office. (See FIG. 3A for an alternative tree structure as anexample.) These internal data nodes can be nested with each other andeach data node can have multiple child nodes. It is possible for eachdata node to have multiple parent nodes. The end data nodes are thenodes that receive and store the actual data gathered from the field.

The internal nodes serve to classify or categorize the data that isfinally stored. In one example, the data to be gathered relates to acustomer order for hardware supplies. The root node may be of theclassification ORDER (to denote that the data relates to an order). Thefirst level child nodes may then be the various types of hardware goodsavailable (e.g. tools, plumbing supplies, carpentry supplies, masonrysupplies, etc.). The second level child nodes can the varioussubcategories of the types of hardware goods (e.g. for tools, the childnodes may be hammers, band saws, hacksaws, work benches, etc.). Thethird level child nodes could be the different brands for each of thesubcategories while the fourth level child nodes could be the end datanodes which would contain the actual number of each item being orderedby the customer.

The data input modules are used to receive or retrieve the actual datato be saved in the end data nodes. A different data input module is usedfor each type of data to be received or retrieved. As an example, onedata input module can be used to retrieve GPS coordinates from the GPSreceiver in the mobile computing device. Similarly, another data inputmodule is used to receive operator entered data from the keyboard on themobile computing device. A third data input module may be used toretrieve data from the touch screen on the mobile computing device.Other data input modules may be used to retrieve data from otherhardware or software implemented input devices on the mobile computingdevice. Data input devices which may be used with the invention can behandled by various software modules such as:

-   -   text entry modules;    -   numeric entry modules;    -   location entry modules;    -   photo picker modules;    -   drawing based modules.

Non-limiting examples of such data input devices (whether implemented assoftware or hardware) are:

-   -   a software keyboard (see FIG. 4A for an example);    -   a hardware keyboard;    -   a scrolling menu (see FIG. 4B for an example);    -   a spinner menu (see FIG. 4C for an example);    -   a digital camera;    -   a voice recording memory.

The mechanism used to input the data into the various end data nodes ispredetermined by the data format from the central office. As an example,if an end data node is for storing a numeric value (e.g. a SKU (stockkeeping unit) for a product), numerous options for data entry areavailable such as the software keyboard, a numerical spinner menu, or ahardware keyboard. The data format from the central office would dictatewhich data input means is used. Thus, operators would not have theoption of selecting which data input means is used as the data formatwould only allow a selected data input method or means to be used by theend user or person in the field. In the numeric value example, the dataformat could dictate that operators are only provided with the softwarekeyboard for entering the numeric value for storage in the end datanode. As another example, the data format may dictate that operators canuse a software representation of a dial for entering a value from 1-10(or 11) if an end data node requires such a value.

The system operates by initially having the central office upload thedata format to the various mobile computing devices. As can be imagined,different central offices, having different needs, will uploaddifferently configured data formats to the mobile computing devices oftheir various operators.

Once the data format has been uploaded, the operator can then startgathering data from the field based on that data format. The operatorinitiates the process by essentially creating a new data node tree foreach data set or group of data points. The group of data points isinitiated by creating a new root node of a predefined type orclassification. From the root node, the operator can then traverse thedata node tree and enter data where necessary using whichever data inputmodules have been configured to be used for a specific input data node.As an example, the operator can initiate the data node tree with a rootnode. The root node's first child node may be a data input node wherethe operator is required to select a customer name from a selection ofpredefined customer names. Selecting a customer name then populates thatdata input node with the selected customer name. The next data node inthe tree may then be another category that is a child node of the rootnode (e.g. job type). Multiple predefined options for this category maythen be provided to the operator. Once a selection is made, the operatorthen continues populating the various input data nodes using therelevant data input modules.

It should be noted that some of the data nodes in the data node tree maybe marked as being required. This means that the operator has toselect/input data for that data node otherwise the process cannot becompleted. Other data nodes may need data but, if they are not marked asbeing required, then the operator may leave such data nodes blank andthe process may still continue and terminate successfully.

It should further be noted that the operator need not enter datasequentially or in any specific or predetermined order. As an example,after the root node is initialized, the operator may be presented with amenu of the first level child nodes of the root node. The operator canthen select which child node (i.e. which branch) to traverse and therebyenter data for. In fact, depending on the configuration of the dataformat, there may be data nodes which are populated automatically oncethe root node has been initialized or once a specific child node hasbeen accessed. In one example, if the data point to be gathered is thelocation of the mobile computing device (perhaps to determine a job siteor the location for a research project), the system can automaticallyretrieve the GPS coordinates from the GPS receiver on the mobilecomputing device.

Once the relevant data nodes have been populated with data, the data setcan be aggregated by the data aggregator into a data package fortransmission to the central office. Preferably, the data package has allof the data gathered for that data set so that each data set can beuploaded to the central office as a self-contained package. Thus, in acustomer order data gathering example, a data package would represent asingle customer order containing not just the customer identificationbut the billing information, the shipping information, the identity ofthe goods or services being ordered, the quantity being ordered, as wellas a desired delivery date.

Packaging the data collected into a data package may take a number offorms. In one embodiment, each data node tree is packaged as a wholedata package and sent to the central office as a complete data nodetree. For this embodiment, the complete data node tree, with therelevant end data nodes populated with data, is sent to the centraloffice. In another embodiment, instead of packaging the whole data nodetree, only the end data nodes, with the data populating them, are sentto the central office. The end data nodes, properly tagged as beingspecific end data nodes (e.g. quantity, temperature reading, etc.) andtheir associated data, is aggregated and then transmitted to the centraloffice. Tagging the end data nodes may require that the end data nodesbe tagged with a representation of the “genealogy” of the end data node.This means that the parentage of each end data node may need to be usedin the tag so that data processing at the central office may be able todetermine which type of data format or which branch of a specific datanode tree is being referenced. As an example, if a central office dataformat for a data node tree for customer orders has 3 end data nodescalled QUANTITY (e.g. one for hammers, one for nails, one for staples)an indication as to the parentage of a specific end data node wouldensure that the correct data is stored and processed.

It should be noted that the system need not be limited to only one typeof data being gathered. In the customer order data gathering example, anoperator could create a new data node tree that is different from acustomer order data node tree. The operator could create a new customerdata node tree with a different type of root node. The operator could begiven an option as to the different types of root nodes available and,by selecting one, the operator selects the type of data to be gatheredfor that particular data package. The different root node types woulddetermine the type of data being gathered and the structure of the datanode tree. As an example, a data package for customer orders would havea different internal tree structure and different data nodes from a datapackage for new customer information. Of course, all these differenttypes of data packages and their data formats would need to be definedand provisioned for by the central office.

The system allows for multiple types of input data to be used topopulate the input data nodes. As an example, an operator gatheringcustomer orders can, to confirm the order, ask the customer for his orher signature. By using the touch screen of the mobile computing device,the customer can provide his signature and the digital image produced bythe customer signing on the touch screen can be the data that populatesone of the input data nodes. Similarly, if the data being gatheredrelates to a repair job, a digital picture(s) of the piece to berepaired may be used as data to populate the input data nodes. Thedigital picture can be retrieved from the digital camera on the mobilecomputing device by a suitable data input module.

The invention as described above allows the central office to definemultiple different types of data node trees. The different data formatsfor these different types of data node trees are, as described above,uploaded to the devices of the various operators. The operators can theninitiate any of the various types of data node trees as required in thefield. In one embodiment of the invention, the central office can definea large number of subtrees, each of which can have end data nodesassociated with a particular subtree. These various subtrees can thenform part of a particular type of data node tree. As an example, asubtree may be defined with a title COMPONENT TEMPERATURE to denote thatthe subtree relates to a temperature reading of a specific component.This subtree, defined by the central office, can have 4 child nodes(TEMP READING, DATE, TIME, NOTES) each one being an end data node. Theseend data nodes can be populated by the operator entering the datarequired such as the actual temperature reading, the date the readingwas taken, the time the reading was taken, and any notes the operatorwishes to take regarding the reading. As noted above, these subtrees canbe grafted on to a data node tree as required by the data format beingdefined by the central office. In one example, the central office candefine a data format for a data node tree of type CHEMICAL PLANTREADINGS. This type of data node tree, once initiated with a root node,can have, as children nodes of the root nodes, the various components ofthe chemical plant. Each component node can have grafted on to it thesubtree COMPONENT TEMPERATURE. Instances of this subtree can thus formpart of the resulting data node tree.

As can be seen from the above example, the central office can define asmany subtrees as it needs (in whatever configuration) and use instancesof these subtrees as building blocks or building components to definelarger trees to result in the data format defining a specific type ofdata node tree. A central office can therefore define a specific type ofdata node tree by first defining a root node with a specific name ortag. The root node can have any number of child nodes and these childnodes can have their own child nodes. A predefined subtree can then begrafted on to any of the child node or, in fact, can be grafted ondirectly to the root node. The subtree itself can be composed ofpredefined subtrees. As can be imagined, the operator can initiate aspecific type of data node tree by simply creating an instance of a datanode tree defined by which type of root node is used. Following theexample in the previous paragraph, by creating a root node of the tagCHEMICAL PLANT READINGS, the operator has created a data node tree thatfollows the data format of that particular type and, as such, this datanode tree's structure will mirror the structure of the data format forthat type of data node tree defined by the central office.

From the above, it should therefore be clear that the type of root nodeinitiated will determine the data format used for a particular data nodetree. From the above examples, the root node of classification or typeORDER will generate a data node tree with a structure as defined forthat type of data node tree by the central office. This means that anydata node tree of type or classification ORDER (for that particularorganization) would have four levels of nodes and the nodes will relateto the various types of hardware goods available (first level), thevarious subcategories of the types of hardware goods (second level), thedifferent brands for each of the subcategories (third level), andfinally, end data nodes (fourth level) which would contain the actualnumber of each item being ordered by the customer.

It should be noted that, for each enterprise using the invention (i.e.each central office), the internal structure of the system describedabove is internally consistent. What this means is that, as an example,for a company using the invention to collect orders from customers, thevarious subtrees, end data nodes, root nodes, data formats, data treetypes, etc. are all identical within the enterprise. Thus, all devicesused by operators for that enterprise will be able to use the dataformat framework defined by that particular central office. Thatparticular central office can thus define data formats A, B, and C usingthe various subtrees and end data nodes, root nodes, etc. that itpreviously defined and the various devices for its operators can accessand use those data formats. A different central office for a differententerprise would NOT be able to use data formats A, B, or C as theinternal data format framework for this different enterprise would bedifferent. The concepts used to define the data format framework wouldbe identical but the implementation (e.g. the tags, fields, data fields,which data input means are allowed, etc.) would be quite different.Thus, within one implementation or within one enterprise, the datastructure framework would be internally consistent to allow those withinthat enterprise to access the data stored within that framework. Assuch, the data collected from the field by the mobile device operatorsemployed by that enterprise would be accessible to those within theenterprise. Another enterprise, with another implementation, may,depending on the implementation, be unable to access the data from thefirst enterprise.

The steps in a method according to one aspect of the invention may besummarized in a flowchart as illustrated in FIG. 5. The method, executedon a mobile computing device, begins in step 200—that of receiving adata format from a central office. Step 210 is that of creating one ormore instances of a root node, with each root node being the root of atree structure or directed graph. As noted above, each data tree followsthe data format received from the central office. Data nodes are thencreated, each data node having a parentage that ultimately is traceableto that tree's root node. Step 220 is that of populating the relevantdata nodes with data from data input modules. Once the data nodes havebeen populated, that data is then packaged into a data package (step230) and then transmitted to the central office (step 240). It should benoted that steps 200 and 210 may be remote in time and that step 200 mayonly need to be executed whenever a new data format from the centraloffice is available. As well, steps 230 and 240 may also be remote intime from one another as the data transmission need not occur untilthere is a data connection with the central office.

The embodiments of the invention may be executed by a computer processoror similar device programmed in the manner of method steps, or may beexecuted by an electronic system which is provided with means forexecuting these steps. Similarly, an electronic memory means such ascomputer diskettes, CD-ROMs, Random Access Memory (RAM), Read OnlyMemory (ROM) or similar computer software storage media known in theart, may be programmed to execute such method steps. As well, electronicsignals representing these method steps may also be transmitted via acommunication network.

Embodiments of the invention may be implemented in any conventionalcomputer programming language. For example, preferred embodiments may beimplemented in a procedural programming language (e.g.“C”) or anobject-oriented language (e.g.“C++”, “java”, or “C#”). Alternativeembodiments of the invention may be implemented as pre-programmedhardware elements, other related components, or as a combination ofhardware and software components.

Embodiments can be implemented as a computer program product for usewith a computer system. Such implementations may include a series ofcomputer instructions fixed either on a tangible medium, such as acomputer readable medium (e.g., a diskette, CD-ROM, ROM, or fixed disk)or transmittable to a computer system, via a modem or other interfacedevice, such as a communications adapter connected to a network over amedium. The medium may be either a tangible medium (e.g., optical orelectrical communications lines) or a medium implemented with wirelesstechniques (e.g., microwave, infrared or other transmission techniques).The series of computer instructions embodies all or part of thefunctionality previously described herein. Those skilled in the artshould appreciate that such computer instructions can be written in anumber of programming languages for use with many computer architecturesor operating systems. Furthermore, such instructions may be stored inany memory device, such as semiconductor, magnetic, optical or othermemory devices, and may be transmitted using any communicationstechnology, such as optical, infrared, microwave, or other transmissiontechnologies. It is expected that such a computer program product may bedistributed as a removable medium with accompanying printed orelectronic documentation (e.g., shrink-wrapped software), preloaded witha computer system (e.g., on system ROM or fixed disk), or distributedfrom a server over a network (e.g., the Internet or World Wide Web). Ofcourse, some embodiments of the invention may be implemented as acombination of both software (e.g., a computer program product) andhardware. Still other embodiments of the invention may be implemented asentirely hardware, or entirely software (e.g., a computer programproduct).

A person understanding this invention may now conceive of alternativestructures and embodiments or variations of the above, all of which areintended to fall within the scope of the invention as defined in theclaims that follow.

Having thus described the invention, what is claimed as new and securedby Letters Patent is:
 1. A system for gathering data at a locationremote from a central office, the system comprising: a data formatreceiver for receiving, by a processor, a data format from said centraloffice only when a communications link exists between said system andsaid central office; a data aggregator for aggregating and storing, bysaid processor, data gathered by an operator of a mobile computingdevice into a complete self-contained data package having a formataccording to said data format received from said central office, saiddata format comprising a plurality of data nodes having an internal treestructure, said tree structure comprising: a root node initiated by saidoperator of said mobile computing device, said root node determining atype for said data package; a plurality of data nodes, at least one datanode being nested from said root node; a plurality of data input modulesfor providing, by said processor, data to be entered into said datanodes, at least one of said plurality of said data input modulesentering data into a data node upon activation by said operator, and adata transmitter for transmitting, by said processor, said data packageto said central office only when said communications link exists;wherein said system operates as part of said mobile computing device,said data format determines which data input modules are to be activatedby said operator for entering data into data nodes, said data being sentas a complete data node tree in said self-contained data package; and,nodes internal to said tree structure are used to classify data enteredinto said data nodes.
 2. A system according to claim 1 wherein at leastone of said plurality of data nodes are nested with other data nodes. 3.A system according to claim 1 wherein said plurality of data inputdevices includes at least one of: a hardware keyboard coupled to saidmobile computing device; a software keyboard operatively coupled to saidmobile computing device; a touchscreen; a software implemented scrollingmenu with predefined entries; a software implemented multiple spinnermenu; a digital camera; a location module for providing GPS coordinatesof a location; and a voice recording.
 4. A system according to claim 1wherein said system uses different data package formats for differenttypes of data gathered by said operator.
 5. A system according to claim1 wherein said mobile computing device is a mobile smartphone handset.6. A system according to claim 1 wherein said mobile computing device isa tablet computer.
 7. A method for gathering data from a location remotefrom a central office, the method comprising: a) receiving a data formatfor said data from said central office when a communications link existsbetween a mobile computing device and said central office, said dataformat comprising a plurality of data nodes having an internal treestructure, said tree structure comprising: a root node, said root nodedetermining a type for said data package; a plurality of data nodes, atleast one data node being nested from said root node; b) creating oneinstance of said root node based on said data format; c) populating atleast one of said plurality of data nodes with data received from atleast one of a plurality of data input modules, said root node beinginitiated by an operator of said mobile computing device; d) aggregatingsaid data in said data nodes into a complete self-contained datapackage; and e) transmitting said data package to said central officeonly when said communications link exists; wherein said data formatdetermines which data input modules are to be activated by said operatorfor entering data into said plurality of data nodes, said data inputmodules being part of said mobile computing device, said data being sentas a complete data node tree in said self-contained data package; and,nodes internal to said tree structure are used to classify data enteredinto said data nodes.
 8. A method according to claim 7 wherein saidmethod is executed on said mobile computing device.
 9. A methodaccording to claim 7 further including the steps of: f) repeating stepsb)-d) for each instance of a data set gathered, each data set resultingin a data package such that each data package contains data for acomplete data set.
 10. A method according to claim 7 wherein saidcommunications link is a wireless link.
 11. A method according to claim7 wherein said data package comprises data in said data nodes taggedwith an identification of said data nodes to which they relate.
 12. Amethod according to claim 7 wherein, for step c), said at least one datainput module is defined in said data format.